package com.example.study.design.singleton;

/**
 * @author duckquan
 */
public class LazySecurity {

    /**
     * 私有构造方法
     */
    private LazySecurity() {
    }

    /**
     * 在本类中创建私有静态的全局对象
     */
    private static LazySecurity instance;

    /**
     * 通过判断对象是否被初始化,来选择是否创建对象
     *
     * @return
     */
    public static LazySecurity getInstance() {
        //第一次判断，如果instance不为null，不进入抢锁阶段，直接返回实例
        if (instance == null) {
            synchronized (LazySecurity.class) {
                //抢到锁之后再次进行判断是否为null
                if (instance == null) {
                    instance = new LazySecurity();
                }
            }
        }
        return instance;
    }

}
